﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using Shpm.System.Db;
using Shpm.App.Commons.Db.Beans.Master;
using Shpm.App.Common.Bean;
using Shpm.App.Commons.Db.Beans.Inp;
using Shpm.App.Input.Bean;
using Shpm.App.Master.Bean;
using Shpm.App.Search.Bean;
/// <summary>
/// Summary description for CommunityMonitorDao
/// </summary>
namespace Shpm.App.Search.Dao
{
    public class CommunityMonitorDao : ShpmBaseDao
    {
        public CommunityMonitorDao()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        // 按row, col读取地图信息
        public const string FIND_COMMUNITY_MAP = "CommunityMonitor.GetCommunityMap";

        // 按ipAddress读取地图信息
        public const string FIND_COMMUNITY_MAP_ADDRESS = "CommunityMonitor.GetCommunityMapAddress";

        // 按ipaddress查询当前CCTV信息
        public const string FIND_CCTV = "CommunityMonitor.GetCctv";

        // 按row, col查找当前区域地图上的摄像头
        public const string LIST_CCTV = "CommunityMonitor.ListCctv";

        // 摄像机与其所对应的地图信息
        public const string GET_MAP_OF_CCTV_LIST = "CommunityMonitor.GetMapOfCctvList";

        /*
         *名称： GetCommunityMapByPos
         *功能： 取得地图对象。

         *参数： paramBean - 检索参数
         *返回： 地图信息 
         *说明： 根据坐标获取地图信息
        */
        public MstCommunityMapBean GetCommunityMapByPos(MstCommunityMapBean paramBean)
        {
            return (MstCommunityMapBean)base.QueryForObject(FIND_COMMUNITY_MAP, paramBean);
        }

        /*
         *名称： GetCommunityMapByAddress
         *功能： 按ipaddress查询当前地图信息。

         *参数： paramBean - 检索参数
         *返回： 地图信息 
         *说明： 根据地址获取地图信息
        */
        public MstCommunityMapBean GetCommunityMapByAddress(string ipAddress, int channel)
        {
            MstCctvBean beanCctv = new MstCctvBean();
            beanCctv.IpAddress = ipAddress;
            beanCctv.Channel = channel;
            beanCctv = (MstCctvBean)base.QueryForObject(FIND_CCTV, beanCctv);
            if (beanCctv == null)
            {
                return null;
            }
            if (beanCctv.AbsPosX == null || beanCctv.AbsPosY == null)
            {
                return null;
            }
            MstCommunityMapBean beanMap = new MstCommunityMapBean();
            beanMap.AbsPosX = beanCctv.AbsPosX;
            beanMap.AbsPosY = beanCctv.AbsPosY;
            return (MstCommunityMapBean)base.QueryForObject(FIND_COMMUNITY_MAP_ADDRESS, beanMap);
        }

        /*
         *名称： listCCTV
         *功能： 按row, col查找当前区域地图上的摄像头。

         *参数： paramBean - 检索参数
         *返回： 地图信息 
         *说明： 根据坐标获取地图信息
        */
        public IList listCCTV(int row, int col)
        {
            MstCommunityMapBean bean = new MstCommunityMapBean();
            bean.Row = row;
            bean.Col = col;
            bean = (MstCommunityMapBean)base.QueryForObject(FIND_COMMUNITY_MAP, bean);

            return base.QueryForList(LIST_CCTV, bean);
        }

        /*
         *名称： GetMapOfCctvList
         *功能： 查找摄像机与其所对应的地图信息 。
         *参数： 无
         *返回： 摄像机与其所对应的地图信息 
         *说明： 
        */
        public IList GetMapOfCctvList() 
        {
            return base.QueryForList(GET_MAP_OF_CCTV_LIST, new CctvBean());
        }
    }
}